No documento 02-Basico ASP NET 1 discutimos o zero à esquerda do .NET Framework, ou seja, o que é necessário saber para entender o que esta por vir.
Nesta página passamos da teoria para a prática, ou seja, vamos ver como um projeto Web é feito em ASP NET.
Ao criarmos um projeto básico ASP NET Framework, aplicações web em C# temos os seguintes componentes instalados automaticamente:
Bootstrap : Nosso velho amigo. Um framework muito útil para criar sites responsivos ou com uma qualidade e padrão a nível dos melhores do mundo.
JQuery : Outro velho amigo. Um framework muito útil para criar sites com a melhor interface possível com o usuário além de uma coleção de funcionalidades que nos ajudam muito, por exemplo, ao trabalhar com o AJAX.
Friendly URLS : URL Amigáveis. Recurso imprescindível para quem pretende ter uma ajudinha do google no ranqueamento do seu site na Web. Praticamente obrigatório em sites comerciais.
Web Optimization-aplicações web: Todas as nossas páginas serão aplicações web e este componente é o modelo que proporciona seu funcionamento.
.NET Compiler Plataform : É o componente responsável para gerar o código das páginas (code behind) em MSIL que será compilado em uma dll única para todo a solução.
CSharp : É a linguagem de programação escolhida, C#. Poderia ser o VB NET que nada significativo mudaria.
MSAJAX : É a implementação das funções AJAX pela Microsoft. Se você se lembra ajax é um recurso do browser (httprequest) que podemos acessar via JavaScript mas bibliotecas como JQuery ou esta da Microsoft incorporam funções que expandem as funcionalidades do Ajax.
WebForms : Como disse acima, todas as páginas web são denominadas aplicações web no projeto asp net.
WebInfrastructre : Contém as funcionades de infraestrutura que a aplicação web precisa para funcionar. Podemos citar, entre muitas, o acesso aos serviços de dns e dhcp.
Json : Inclui as funcionalidades para codificação e decodificação de dados formatados em JSON que é um dos padrões de troca de informações via web como o XML por exemplo.
System : São os componentes de acesso ao sistema operacional do servidor.
System Configuration : Armazenam as opções para este projeto.
Core : Refere-se aos componentes do framework core da Microsoft. Caso você precise interagir com algum componente dessa classe será com este recurso que irá fazê-lo.
System.Data : Armazena todos os padrões para troca de dados.
Drawing: É o recurso que permite, por exemplo, desenhar uma reta numa página como um hr, por exemplo.
System.Web : É o principal serviço que define a aplicação web. Contém todos os padrões para trabalhar com páginas web.
Web.Entity : Caso você vá trabalhar com bases de dados SQL você provavelmente irá usar este recurso.
Ele permite, por exemplo, que sua base de dados tiver uma modificação ( como acrescentou um campo numa tabela)
que essa modificação seja automaticamente feita no seu aplicativo de maneira que possa evitar possíveis
erros futuros ao desconsiderar essa coluna.
Web.Services : São os serviços nativos da web como redirecionamento de páginas, acesso ao conteúdo dos objetos response e request etc.
System.XML : Caso deseje trabalhar com dados no formato XML você vai usar este componente. É um parceiro que complementa o componente JSON. Com a extensão Linq permite acessar diretamente servidores sql.
WebGrease: É uma ferramenta que permite otimizar os arquivos de javascript, css e imagens.
Esta optimização normalmente é uma compactação dos arquivos e outros serviços como sass - compilação
de arquivos css mas com uma certa 'inteligencia'.
Em BundleConfig esta a configuração da sua aplicação. Por exemplo, os módulos AJAX, GridView, forms são definidos aqui de maneira automatica. Note que há uma referência ao 'modernizr' que é uma ferramenta auxiliar muito útil ao compatibilizar recursos em diferentes browsers.
Em RouteConfig.cs estão as rotas de sua aplicação e no caso de url amigáveis o Visual Studio fará esse registro automaticamente para você.
Nesta pasta estão os arquivos do BootStrap bem como o arquivo .css que rege todo o site.
As fontes glyphicons-halflings-regular já vem instaladas na aplicação mas se você precisa de mais fontes como o fontawesome é aqui que deverá depositar seus recursos.
Nesta pasta estão todos os scripts do site como do bootstrap, jquery, modernizr
Se você criou uma app aplicações web comum terá as seguintes páginas:
É a página a respeito do site. Dá as informações básicas sobre os objetivos do site, administradores, etc.
É a página que agrupa as informações caso o usuário deseje entrar em contato com o site.
Pode ter informações ou links para emails ou mesmo um formulário para contato.
Esta é a home page do site.
Este arquivo contém as informações iniciais do site como roteamento.
Trabalha em conjunto com o objeto Session do ASP e armazena as informações que todos os usuários
podem 'enxergar' como, por exemplo, o número de visitantes do site.
Enquanto o objeto Session armazena as informações de cada usuário separadamente o objeto
Global.asax armazena as informações comuns a todos os usuários da aplicação corrente.
Neste arquivo é armazenado as versões dos componentes instalados no seu site.
Ele armazena em qual versão do .NET seu aplicativo foi compilado, a versão do jquery, bootstrap etc.
Este arquivo tem o conteúdo comum a todas as páginas do site.
A tag <%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" inclui esta página
nas outras páginas do site.
Este arquivo é escrito em ASP NET/HTML e nele esta inserido as referências a todos os scripts do
script manager como bootstrap, jquery, webparts etc.
Além disso neste modelo esta definido no topo da página (header) uma barra de navegação e onde o conteúdo
das páginas filhas devem ser inseridos em
<asp:ContentPlaceHolder ID="MainContent" runat="server">
No final há um rodapé (footer) bem singelo com direitos autorais
Este arquivo contém as informações gerais sobre o site.
Todas as páginas do site tem acesso as informações deste arquivo.
Suponha que você queira guardar o string de conexão SQL. Este seria o melhor lugar.
Suponha que você tenha um servidor de produção, um de desenvolvimento e outro de teste.
Aqui seria o melhor lugar para guardar as definições dos recursos de cada um deles.
Este cara contém os providers que podem apontar para servidores SQL por exemplo. Se ao abrir
um projeto e na máquina do cliente não tiver o componente de acesso para o SQL server o aplicativo
irá solicitar a instalação automatica do mesmo de um site assinado pela Microsoft com todas
as garantias.
Um conselho meu, perca um tempo e estude este arquivo (global.asax). Ele é uma peça chave do seu site
e muitas entrevistas de empregos perguntam como configurar ou quais tipos de configurações
fazemos no Web.config.
As páginas web em c# são compostas por 3 componentes :
1-Arquivo pagina.aspx que é o fonte web da página como se fosse o html.
Insere na página a referencia aos componentes externos que ela usa como:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
e define o código do evento Page Load da página ( protected void Page_Load(object sender, EventArgs e) ).
2-Arquivo pagina.aspx.designer.cs que contém o registros dos componentes server-side da página.
Ao incorporar um componente, por exemplo, um label neste aquivo estará registrado todas as suas
propriedades como textos, posição, cor, cor de fundo, etc.
Importante : Não altere o arquivo pagina.aspx.designer.vb porque o Visual Studio faz isso automaticamente e,
se você fizer isso na mão vai provocar um erro.
Por exemplo você chamou um label e neste arquivo dele esta o nome, label1 por exemplo. Se você entrar
neste arquivo e mudar o nome do componente para label2 o registro foi alterado numa página apenas e precisaria
ser alterado em todas as páginas que usam o componente. Portanto, se for renomear uma página, um componente
faça pela janela de propriedades ou pelo gerenciador de soluções mas nunca neste arquivo.
3-Arquivo pagina.aspx.cs contém o code behind (código dos componentes) da página. Por exemplo, ao inserir um botão o botão é inserido na página mas se quiser definir o código quando pressionado será no arquivo pagina.aspx.cs que estará esse código.
Importante: Todos os 'code behind' de todos os componentes de todas as páginas são aglutinados em uma única dll quando o programa é compilado. Ao publicar a dll vai junto com as páginas aspx.
Se você programa em C#, VB NET ou Java sabe que as coisas não muito semelhantes, impressionantemente semelhantes. Faça um programa em JSP, outro em PHP e outro em ASP Clássico. Verá que a lei de Lavoisier se aplica em TI (Lavoisier foi um gênio da Quimica e criou a lei da conservação que diz que 'neste mundo nada se constrói e nada se destrói, tudo se transforma').
Na pasta referências continuamos tendo Bootstrap, JQuery, Friendly URLS, Web Optimization-aplicações web, .NET Compiler Plataform, MSAJAX, WebForms, WebInfrastructre, Json, System, System Configuration, Core, System.Data, Drawing, System.Web, Drawing, System.Web, Web.Entity, Web.Services, System.XML, WebGrease
Contudo as referências a CSharp não existe e não tem uma referência a VBNET
As páginas web em VBNET são compostas por 3 componentes :
1-Arquivo pagina.aspx que é o fonte web da página como se fosse o html.
2-Arquivo pagina.aspx.designer.vb que contém o registros dos componentes server-side da página.
Ao incorporar um componente, por exemplo, um label neste aquivo estará registrado todas as suas
propriedades como textos, posição, cor, cor de fundo, etc.
Importante : Não altere o arquivo pagina.aspx.designer.vb porque o Visual Studio faz isso automaticamente e,
se você fizer isso na mão vai provocar um erro.
Por exemplo você chamou um label e neste arquivo dele esta o nome, label1 por exemplo. Se você entrar
neste arquivo e mudar o nome do componente para label2 o registro foi alterado numa página apenas e precisaria
ser alterado em todas as páginas que usam o componente. Portanto, se for renomear uma página, um componente
faça pela janela de propriedades ou pelo gerenciador de soluções mas nunca neste arquivo.
3-Arquivo pagina.aspx.vb contém o code behind (código dos componentes) da página. Por exemplo, ao inserir um botão o botão é inserido na página mas se quiser definir o código quando pressionado será no arquivo pagina.aspx.vb que estará esse código.
Importante: Todos os 'code behind' de todos os componentes de todas as páginas são aglutinados em uma única dll quando o programa é compilado. Ao publicar a dll vai junto com as páginas aspx.
Automaticamente conforme você vai incorporando itens, componentes, códigos o visual studio vai colocando as coisas no lugar certo para que no final de tudo, na compilação, seja gerado todas as páginas e códigos necessários para que a aplicação funcione corretamente.
Quando mandamos compilar a solução algumas pastas são criadas e o resultado da compilação nelas depositado.
Contém todas as dlls necessárias para rodar a aplicação, entre elas, por exemplo,
AspNet.ScriptManager.jQuery.dll que tem o código (script) do ajax encapsulado numa dll. Note que
cada componente adicionado tem sua dll separada.
Também teremos o aplicação.dll que é o código de nossa aplicação compilada.
Contém as infomações sobre a compilação do progrma. Ao compilar a aplicação podemos definir se estamos gerando uma aplicação para depuração(ou debug) ou para produção. Pode ver que no topo do visual studio quando o projeto esta aberto temos uma janela onde esta escrito 'Debug' ou 'Release'. Debug é depuração e release é produção ou uma versão definitiva da aplicação ( que, por exemplo, passou nos testes e pode ser publicada).
Contém uma lista de todos os pacotes Nuget instalados na aplicação. Então se você, por exemplo, incorporou o BootStrap em seu projeto nesta pasta teremos o Script (Script Manager) para todas as versões do .NET necessárias para o .NET.